package com.dragon.modules.yuegou.query.pay;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dragon.modules.yuegou.entity.pay.AliPointNotifyEntity;
import com.dragon.modules.yuegou.mybatis.Condition;
import com.dragon.modules.yuegou.mybatis.Query;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonUnwrapped;

import java.time.LocalDateTime;

/**
 * 支付宝积分回调信息接口 动态查询条件
 * 
 * @author pbuilder generated
 * @date 2023-03-20 09:58:01
 * @version 2.0
 */
@JsonInclude(Include.NON_NULL)
public class AliPointNotifyQuery extends AliPointNotifyEntity implements Query<AliPointNotifyEntity>{


    /** 查询条件 */
	@JsonUnwrapped(prefix = "id")
	private Condition<String> idCondition;

    /** 创建时间查询条件 */
	@JsonUnwrapped(prefix = "createTime")
	private Condition<LocalDateTime> createTimeCondition;

    /** 消息报文查询条件 */
	@JsonUnwrapped(prefix = "bizContent")
	private Condition<String> bizContentCondition;

    /** 编码集，该字符集为验签和解密所需要的字符集查询条件 */
	@JsonUnwrapped(prefix = "charset")
	private Condition<String> charsetCondition;

    /** 消息发送时的服务端时间查询条件 */
	@JsonUnwrapped(prefix = "utcTimestamp")
	private Condition<String> utcTimestampCondition;

    /** 签名查询条件 */
	@JsonUnwrapped(prefix = "sign")
	private Condition<String> signCondition;

    /** 消息接受方的应用id查询条件 */
	@JsonUnwrapped(prefix = "appId")
	private Condition<String> appIdCondition;

    /** 版本号(1.1版本为标准消息)查询条件 */
	@JsonUnwrapped(prefix = "version")
	private Condition<String> versionCondition;

    /** 签名类型查询条件 */
	@JsonUnwrapped(prefix = "signType")
	private Condition<String> signTypeCondition;

    /** 通知ID查询条件 */
	@JsonUnwrapped(prefix = "notifyId")
	private Condition<String> notifyIdCondition;

    /** 消息接口名称查询条件 */
	@JsonUnwrapped(prefix = "msgMethod")
	private Condition<String> msgMethodCondition;

	/**
	 * 构造一个查询条件对象
	 */
	public AliPointNotifyQuery() {
		super();
	}

	/**
	 * 依据实体对象构造一个查询条件对象
	 * 
	 * @param entity 实体对象
	 */
	public AliPointNotifyQuery(AliPointNotifyEntity entity) {
		super(entity);
	}

	/**
	 * 依据其它查询条件对象的信息构造一个查询条件对象
	 * 
	 * @param other 查询条件对象
	 */
	public AliPointNotifyQuery(AliPointNotifyQuery other) {
		super(other);
		if(other.idCondition != null) {
			this.idCondition = other.idCondition.copy();
		}
		if(other.createTimeCondition != null) {
			this.createTimeCondition = other.createTimeCondition.copy();
		}
		if(other.bizContentCondition != null) {
			this.bizContentCondition = other.bizContentCondition.copy();
		}
		if(other.charsetCondition != null) {
			this.charsetCondition = other.charsetCondition.copy();
		}
		if(other.utcTimestampCondition != null) {
			this.utcTimestampCondition = other.utcTimestampCondition.copy();
		}
		if(other.signCondition != null) {
			this.signCondition = other.signCondition.copy();
		}
		if(other.appIdCondition != null) {
			this.appIdCondition = other.appIdCondition.copy();
		}
		if(other.versionCondition != null) {
			this.versionCondition = other.versionCondition.copy();
		}
		if(other.signTypeCondition != null) {
			this.signTypeCondition = other.signTypeCondition.copy();
		}
		if(other.notifyIdCondition != null) {
			this.notifyIdCondition = other.notifyIdCondition.copy();
		}
		if(other.msgMethodCondition != null) {
			this.msgMethodCondition = other.msgMethodCondition.copy();
		}
	}

	@Override
	public QueryWrapper<AliPointNotifyEntity> toQueryWrapper() {
		QueryWrapper<AliPointNotifyEntity> wrapper = new QueryWrapper<>(this);
		if (idCondition != null) {
			idCondition.toWrapper(wrapper, COL_ID);
		}
		if (createTimeCondition != null) {
			createTimeCondition.toWrapper(wrapper, COL_CREATE_TIME);
		}
		if (bizContentCondition != null) {
			bizContentCondition.toWrapper(wrapper, COL_BIZ_CONTENT);
		}
		if (charsetCondition != null) {
			charsetCondition.toWrapper(wrapper, COL_CHARSET);
		}
		if (utcTimestampCondition != null) {
			utcTimestampCondition.toWrapper(wrapper, COL_UTC_TIMESTAMP);
		}
		if (signCondition != null) {
			signCondition.toWrapper(wrapper, COL_SIGN);
		}
		if (appIdCondition != null) {
			appIdCondition.toWrapper(wrapper, COL_APP_ID);
		}
		if (versionCondition != null) {
			versionCondition.toWrapper(wrapper, COL_VERSION);
		}
		if (signTypeCondition != null) {
			signTypeCondition.toWrapper(wrapper, COL_SIGN_TYPE);
		}
		if (notifyIdCondition != null) {
			notifyIdCondition.toWrapper(wrapper, COL_NOTIFY_ID);
		}
		if (msgMethodCondition != null) {
			msgMethodCondition.toWrapper(wrapper, COL_MSG_METHOD);
		}
		return wrapper;
	}

	/**
	 * 构造并返回查询条件
	 * 
	 * @return idCondition 查询条件
	 */
	public Condition<String> id() {
		this.idCondition = new Condition<>();
		return this.idCondition;
	}
	
	/**
	 * 获取查询条件
	 * 
	 * @return idCondition 查询条件
	 */
	public Condition<String> getIdCondition() {
		return idCondition;
	}

	/**
	 * 设置查询条件
	 * 
	 * @param idCondition 查询条件
	 */
	public void setIdCondition(Condition<String> idCondition) {
		this.idCondition = idCondition;
	}

	/**
	 * 构造并返回创建时间查询条件
	 * 
	 * @return createTimeCondition 创建时间查询条件
	 */
	public Condition<LocalDateTime> createTime() {
		this.createTimeCondition = new Condition<>();
		return this.createTimeCondition;
	}
	
	/**
	 * 获取创建时间查询条件
	 * 
	 * @return createTimeCondition 创建时间查询条件
	 */
	public Condition<LocalDateTime> getCreateTimeCondition() {
		return createTimeCondition;
	}

	/**
	 * 设置创建时间查询条件
	 * 
	 * @param createTimeCondition 创建时间查询条件
	 */
	public void setCreateTimeCondition(Condition<LocalDateTime> createTimeCondition) {
		this.createTimeCondition = createTimeCondition;
	}

	/**
	 * 构造并返回消息报文查询条件
	 * 
	 * @return bizContentCondition 消息报文查询条件
	 */
	public Condition<String> bizContent() {
		this.bizContentCondition = new Condition<>();
		return this.bizContentCondition;
	}
	
	/**
	 * 获取消息报文查询条件
	 * 
	 * @return bizContentCondition 消息报文查询条件
	 */
	public Condition<String> getBizContentCondition() {
		return bizContentCondition;
	}

	/**
	 * 设置消息报文查询条件
	 * 
	 * @param bizContentCondition 消息报文查询条件
	 */
	public void setBizContentCondition(Condition<String> bizContentCondition) {
		this.bizContentCondition = bizContentCondition;
	}

	/**
	 * 构造并返回编码集，该字符集为验签和解密所需要的字符集查询条件
	 * 
	 * @return charsetCondition 编码集，该字符集为验签和解密所需要的字符集查询条件
	 */
	public Condition<String> charset() {
		this.charsetCondition = new Condition<>();
		return this.charsetCondition;
	}
	
	/**
	 * 获取编码集，该字符集为验签和解密所需要的字符集查询条件
	 * 
	 * @return charsetCondition 编码集，该字符集为验签和解密所需要的字符集查询条件
	 */
	public Condition<String> getCharsetCondition() {
		return charsetCondition;
	}

	/**
	 * 设置编码集，该字符集为验签和解密所需要的字符集查询条件
	 * 
	 * @param charsetCondition 编码集，该字符集为验签和解密所需要的字符集查询条件
	 */
	public void setCharsetCondition(Condition<String> charsetCondition) {
		this.charsetCondition = charsetCondition;
	}

	/**
	 * 构造并返回消息发送时的服务端时间查询条件
	 * 
	 * @return utcTimestampCondition 消息发送时的服务端时间查询条件
	 */
	public Condition<String> utcTimestamp() {
		this.utcTimestampCondition = new Condition<>();
		return this.utcTimestampCondition;
	}
	
	/**
	 * 获取消息发送时的服务端时间查询条件
	 * 
	 * @return utcTimestampCondition 消息发送时的服务端时间查询条件
	 */
	public Condition<String> getUtcTimestampCondition() {
		return utcTimestampCondition;
	}

	/**
	 * 设置消息发送时的服务端时间查询条件
	 * 
	 * @param utcTimestampCondition 消息发送时的服务端时间查询条件
	 */
	public void setUtcTimestampCondition(Condition<String> utcTimestampCondition) {
		this.utcTimestampCondition = utcTimestampCondition;
	}

	/**
	 * 构造并返回签名查询条件
	 * 
	 * @return signCondition 签名查询条件
	 */
	public Condition<String> sign() {
		this.signCondition = new Condition<>();
		return this.signCondition;
	}
	
	/**
	 * 获取签名查询条件
	 * 
	 * @return signCondition 签名查询条件
	 */
	public Condition<String> getSignCondition() {
		return signCondition;
	}

	/**
	 * 设置签名查询条件
	 * 
	 * @param signCondition 签名查询条件
	 */
	public void setSignCondition(Condition<String> signCondition) {
		this.signCondition = signCondition;
	}

	/**
	 * 构造并返回消息接受方的应用id查询条件
	 * 
	 * @return appIdCondition 消息接受方的应用id查询条件
	 */
	public Condition<String> appId() {
		this.appIdCondition = new Condition<>();
		return this.appIdCondition;
	}
	
	/**
	 * 获取消息接受方的应用id查询条件
	 * 
	 * @return appIdCondition 消息接受方的应用id查询条件
	 */
	public Condition<String> getAppIdCondition() {
		return appIdCondition;
	}

	/**
	 * 设置消息接受方的应用id查询条件
	 * 
	 * @param appIdCondition 消息接受方的应用id查询条件
	 */
	public void setAppIdCondition(Condition<String> appIdCondition) {
		this.appIdCondition = appIdCondition;
	}

	/**
	 * 构造并返回版本号(1.1版本为标准消息)查询条件
	 * 
	 * @return versionCondition 版本号(1.1版本为标准消息)查询条件
	 */
	public Condition<String> version() {
		this.versionCondition = new Condition<>();
		return this.versionCondition;
	}
	
	/**
	 * 获取版本号(1.1版本为标准消息)查询条件
	 * 
	 * @return versionCondition 版本号(1.1版本为标准消息)查询条件
	 */
	public Condition<String> getVersionCondition() {
		return versionCondition;
	}

	/**
	 * 设置版本号(1.1版本为标准消息)查询条件
	 * 
	 * @param versionCondition 版本号(1.1版本为标准消息)查询条件
	 */
	public void setVersionCondition(Condition<String> versionCondition) {
		this.versionCondition = versionCondition;
	}

	/**
	 * 构造并返回签名类型查询条件
	 * 
	 * @return signTypeCondition 签名类型查询条件
	 */
	public Condition<String> signType() {
		this.signTypeCondition = new Condition<>();
		return this.signTypeCondition;
	}
	
	/**
	 * 获取签名类型查询条件
	 * 
	 * @return signTypeCondition 签名类型查询条件
	 */
	public Condition<String> getSignTypeCondition() {
		return signTypeCondition;
	}

	/**
	 * 设置签名类型查询条件
	 * 
	 * @param signTypeCondition 签名类型查询条件
	 */
	public void setSignTypeCondition(Condition<String> signTypeCondition) {
		this.signTypeCondition = signTypeCondition;
	}

	/**
	 * 构造并返回通知ID查询条件
	 * 
	 * @return notifyIdCondition 通知ID查询条件
	 */
	public Condition<String> notifyId() {
		this.notifyIdCondition = new Condition<>();
		return this.notifyIdCondition;
	}
	
	/**
	 * 获取通知ID查询条件
	 * 
	 * @return notifyIdCondition 通知ID查询条件
	 */
	public Condition<String> getNotifyIdCondition() {
		return notifyIdCondition;
	}

	/**
	 * 设置通知ID查询条件
	 * 
	 * @param notifyIdCondition 通知ID查询条件
	 */
	public void setNotifyIdCondition(Condition<String> notifyIdCondition) {
		this.notifyIdCondition = notifyIdCondition;
	}

	/**
	 * 构造并返回消息接口名称查询条件
	 * 
	 * @return msgMethodCondition 消息接口名称查询条件
	 */
	public Condition<String> msgMethod() {
		this.msgMethodCondition = new Condition<>();
		return this.msgMethodCondition;
	}
	
	/**
	 * 获取消息接口名称查询条件
	 * 
	 * @return msgMethodCondition 消息接口名称查询条件
	 */
	public Condition<String> getMsgMethodCondition() {
		return msgMethodCondition;
	}

	/**
	 * 设置消息接口名称查询条件
	 * 
	 * @param msgMethodCondition 消息接口名称查询条件
	 */
	public void setMsgMethodCondition(Condition<String> msgMethodCondition) {
		this.msgMethodCondition = msgMethodCondition;
	}

}
